Page({
  data: {
    fileName: '', // 用于存储文件名
    imageSrc: null, // 用于存储图片的 Base64 数据
    autoRefreshInterval: null // 用于存储自动刷新的定时器
  },

  onLoad: function(options) {
    if (options.filename) {
      this.setData({
        fileName: decodeURIComponent(options.filename) // 解码文件名
      });
      // this.fetchImage(options.filename);
      this.startAutoRefresh(); // 启动自动刷新
    }
  },

  fetchImage(fileName) {
    const url = 'https://iot-api.heclouds.com/datapoint/history-datapoints';
    const params = {
      product_id: '35ow3L3sv7',
      device_name: 'iot_camera',
      datastream_id: 'jpegFile'
    };
    const authHeader = 'version=2022-05-01&res=userid%2F433704&et=1838393020&method=sha1&sign=k9xbaMQ5MgUvbMhJMjRzY8YU9No%3D';

    // 获取当前时间并格式化为指定格式
    const now = new Date();
    const end = this.formatDate(now); // 当前时间作为结束时间
    const start = this.formatDate(new Date(now.getTime() - 7000)); // 当前时间减去7秒作为开始时间

    // 添加时间范围参数
    params.start = start;
    params.end = end;

    // 构造请求的完整 URL
    const queryString = Object.keys(params).map(key => `${key}=${encodeURIComponent(params[key])}`).join('&');
    const fullUrl = `${url}?${queryString}`;

    console.log('请求的完整 URL:', fullUrl); // 打印请求的完整 URL

    // 发起请求
    wx.request({
      url: fullUrl,
      method: 'GET',
      header: {
        'Authorization': authHeader
      },
      success: (res) => {
        console.log('image服务器返回的数据:', res.data); // 打印服务器返回的完整数据

        if (res.statusCode === 200 && res.data.code === 0) {
          // 解析 Base64 编码的 value 值
          const datastreams = res.data.data.datastreams;
          if (datastreams && datastreams.length > 0 && datastreams[0].datapoints && datastreams[0].datapoints.length > 0) {
            let base64Value = datastreams[0].datapoints[0].value;

            // 去掉回车和换行符
            base64Value = base64Value.replace(/[\r\n]/g, '');

            // 检查 Base64 数据是否为空
            if (base64Value.length === 0) {
              wx.showToast({
                title: 'Base64 数据为空',
                icon: 'none'
              });
            } else {
              // 设置 imageSrc 并强制刷新视图
              this.setData({
                imageSrc: `data:image/jpeg;base64,${base64Value}`
              }, () => {
                console.log('视图已更新，图片应该已经加载');
              });
            }
          } else {
            // wx.showToast({
            //   title: '图片数据',
            //   icon: 'none'
            // });
          }
        } else {
          wx.showToast({
            title: `请求失败，状态码：${res.statusCode}，消息：${res.data.msg}`,
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('请求失败的错误信息:', err.errMsg); // 打印请求失败的错误信息
        wx.showToast({
          title: `请求失败，错误信息：${err.errMsg}`,
          icon: 'none'
        });
      }
    });
  },

  // 格式化日期为指定格式：YYYY-MM-DDTHH:MM:SS
  formatDate(date) {
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const hours = String(date.getHours()).padStart(2, '0');
    const minutes = String(date.getMinutes()).padStart(2, '0');
    const seconds = String(date.getSeconds()).padStart(2, '0');
    return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;
  },

  // 刷新按钮的点击事件
  onRefresh() {
    console.log('刷新按钮被点击');
    this.fetchImage(this.data.fileName);
  },

  // 启动自动刷新
  startAutoRefresh() {
    console.log('启动自动刷新');
    this.setData({
      autoRefreshInterval: setInterval(() => {
        this.fetchImage(this.data.fileName);
      }, 7000) // 每隔7秒触发一次
    });
  },

  // 停止自动刷新
  stopAutoRefresh() {
    console.log('停止自动刷新');
    const interval = this.data.autoRefreshInterval;
    if (interval) {
      clearInterval(interval);
      this.setData({
        autoRefreshInterval: null
      });
    }
  },

  // 页面卸载时停止自动刷新
  onUnload() {
    this.stopAutoRefresh();
  }
});